package com.stock_t.utils;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class MapUtils {
    /**
     * 创建不可变 Map，支持传入任意数量的键值对（交替顺序：k1, v1, k2, v2, ...）
     * 
     * @param entries 键值对数组（长度必须为偶数）
     * @return 不可修改的 Map
     * @throws IllegalArgumentException 若参数数量非偶数
     */
    @SuppressWarnings("unchecked")
    public static <K, V> Map<K, V> of(Object... entries) {
        if (entries == null || entries.length == 0) {
            return Collections.emptyMap();
        }
        if (entries.length % 2 != 0) {
            throw new IllegalArgumentException("参数数量必须为偶数（键值成对出现）");
        }
        
        Map<K, V> map = new HashMap<>();
        for (int i = 0; i < entries.length; i += 2) {
            K key = (K) entries[i];
            V value = (V) entries[i + 1];
            map.put(key, value);
        }
        return Collections.unmodifiableMap(map);
    }
}